﻿using System;
using System.Collections.Generic;

using SBPweb.Forge.Contracts.Events;
using SBPweb.Forge.Contracts.Logging;
using SBPweb.Forge.Contracts.Components;

namespace SBPweb.PROvibe.Business.Server.Library.Diagnostics
{
    
    public class Logger : InitializableBase, ILogManager
    {

        #region Private fields

        private List<string> categories = new List<string>();

        #endregion

        #region Property accessors

        public ICollection<string> Categories
        {
            get
            {
                return categories;
            }
        }

        #endregion

        #region Events

        public event EventHandler<LogWriteEventArgs> Written;

        #endregion

        #region Methods

        protected override void OnInitialize()
        {
            categories.Add("General");
            categories.Add("Logger");
            categories.Add("ModuleLoader");
        }

        protected override void OnTerminate()
        {
        }

        public void Write(object sender, object obj, string category)
        {
            //throw new NotImplementedException();
        }

        public void WriteCritical(object sender, object obj, string category)
        {
            //throw new NotImplementedException();
        }

        public void WriteError(object sender, object obj, string category)
        {
            //throw new NotImplementedException();
        }

        public void WriteInfo(object sender, object obj, string category)
        {
            //throw new NotImplementedException();
        }

        public void WriteVerbose(object sender, object obj, string category)
        {
            //throw new NotImplementedException();
        }

        public void WriteWarning(object sender, object obj, string category)
        {
            //throw new NotImplementedException();
        }

        #endregion

    }

}